

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <title>How To Add Your Build Configuration To LLVM Buildbot Infrastructure &mdash; LLVM 3.2 documentation</title>
    
    <link rel="stylesheet" href="_static/llvm-theme.css" type="text/css" />
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
    
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '',
        VERSION:     '3.2',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true
      };
    </script>
    <script type="text/javascript" src="_static/jquery.js"></script>
    <script type="text/javascript" src="_static/underscore.js"></script>
    <script type="text/javascript" src="_static/doctools.js"></script>
    <link rel="top" title="LLVM 3.2 documentation" href="index.html" />
    <link rel="up" title="User Guides" href="userguides.html" />
    <link rel="next" title="yaml2obj" href="yaml2obj.html" />
    <link rel="prev" title="Advice on Packaging LLVM" href="Packaging.html" />
<style type="text/css">
  table.right { float: right; margin-left: 20px; }
  table.right td { border: 1px solid #ccc; }
</style>

  </head>
  <body>
<div class="logo">
  <a href="index.html">
    <img src="_static/logo.png"
         alt="LLVM Logo" width="250" height="88"/></a>
</div>

    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="yaml2obj.html" title="yaml2obj"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="Packaging.html" title="Advice on Packaging LLVM"
             accesskey="P">previous</a> |</li>
  <li><a href="http://llvm.org/">LLVM Home</a>&nbsp;|&nbsp;</li>
  <li><a href="index.html">Documentation</a>&raquo;</li>

          <li><a href="userguides.html" accesskey="U">User Guides</a> &raquo;</li> 
      </ul>
    </div>

      <div class="sphinxsidebar">
        <div class="sphinxsidebarwrapper">
  <h3><a href="index.html">Table Of Contents</a></h3>
  <ul>
<li><a class="reference internal" href="#">How To Add Your Build Configuration To LLVM Buildbot Infrastructure</a><ul>
<li><a class="reference internal" href="#introduction">Introduction</a></li>
<li><a class="reference internal" href="#steps-to-add-builder-to-llvm-buildbot">Steps To Add Builder To LLVM Buildbot</a></li>
</ul>
</li>
</ul>

  <h4>Previous topic</h4>
  <p class="topless"><a href="Packaging.html"
                        title="previous chapter">Advice on Packaging LLVM</a></p>
  <h4>Next topic</h4>
  <p class="topless"><a href="yaml2obj.html"
                        title="next chapter">yaml2obj</a></p>
  <h3>This Page</h3>
  <ul class="this-page-menu">
    <li><a href="_sources/HowToAddABuilder.txt"
           rel="nofollow">Show Source</a></li>
  </ul>
<div id="searchbox" style="display: none">
  <h3>Quick search</h3>
    <form class="search" action="search.html" method="get">
      <input type="text" name="q" />
      <input type="submit" value="Go" />
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
    <p class="searchtip" style="font-size: 90%">
    Enter search terms or a module, class or function name.
    </p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body">
            
  <div class="section" id="how-to-add-your-build-configuration-to-llvm-buildbot-infrastructure">
<span id="how-to-add-a-builder"></span><h1>How To Add Your Build Configuration To LLVM Buildbot Infrastructure<a class="headerlink" href="#how-to-add-your-build-configuration-to-llvm-buildbot-infrastructure" title="Permalink to this headline">¶</a></h1>
<p><em>Section author: Galina Kistanova &lt;<a class="reference external" href="mailto:gkistanova&#37;&#52;&#48;gmail&#46;com">gkistanova<span>&#64;</span>gmail<span>&#46;</span>com</a>&gt;</em></p>
<div class="section" id="introduction">
<h2>Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h2>
<p>This document contains information about adding a build configuration and
buildslave to private slave builder to LLVM Buildbot Infrastructure
<a class="reference external" href="http://lab.llvm.org:8011">http://lab.llvm.org:8011</a>.</p>
</div>
<div class="section" id="steps-to-add-builder-to-llvm-buildbot">
<h2>Steps To Add Builder To LLVM Buildbot<a class="headerlink" href="#steps-to-add-builder-to-llvm-buildbot" title="Permalink to this headline">¶</a></h2>
<p>Volunteers can provide their build machines to work as build slaves to
public LLVM Buildbot.</p>
<p>Here are the steps you can follow to do so:</p>
<ol class="arabic">
<li><p class="first">Check the existing build configurations to make sure the one you are
interested in is not covered yet or gets built on your computer much
faster than on the existing one. We prefer faster builds so developers
will get feedback sooner after changes get committed.</p>
</li>
<li><p class="first">The computer you will be registering with the LLVM buildbot
infrastructure should have all dependencies installed and you can
actually build your configuration successfully. Please check what degree
of parallelism (-j param) would give the fastest build.  You can build
multiple configurations on one computer.</p>
</li>
<li><p class="first">Install buildslave (currently we are using buildbot version 0.8.5).
Depending on the platform, buildslave could be available to download and
install with your packet manager, or you can download it directly from
<a class="reference external" href="http://trac.buildbot.net">http://trac.buildbot.net</a> and install it manually.</p>
</li>
<li><p class="first">Create a designated user account, your buildslave will be running under,
and set appropriate permissions.</p>
</li>
<li><p class="first">Choose the buildslave root directory (all builds will be placed under
it), buildslave access name and password the build master will be using
to authenticate your buildslave.</p>
</li>
<li><p class="first">Create a buildslave in context of that buildslave account.  Point it to
the <strong>lab.llvm.org</strong> port <strong>9990</strong> (see <a class="reference external" href="http://buildbot.net/buildbot/docs/current/full.html#creating-a-slave">Buildbot documentation,
Creating a slave</a>
for more details) by running the following command:</p>
<blockquote>
<div><div class="highlight-bash"><div class="highlight"><pre><span class="nv">$ </span>buildslave create-slave &lt;buildslave-root-directory&gt; <span class="se">\</span>
             lab.llvm.org:9990 <span class="se">\</span>
             &lt;buildslave-access-name&gt; &lt;buildslave-access-password&gt;
</pre></div>
</div>
</div></blockquote>
</li>
<li><p class="first">Fill the buildslave description and admin name/e-mail.  Here is an
example of the buildslave description:</p>
<div class="highlight-python"><pre>Windows 7 x64
Core i7 (2.66GHz), 16GB of RAM

g++.exe (TDM-1 mingw32) 4.4.0
GNU Binutils 2.19.1
cmake version 2.8.4
Microsoft(R) 32-bit C/C++ Optimizing Compiler Version 16.00.40219.01 for 80x86</pre>
</div>
</li>
<li><p class="first">Make sure you can actually start the buildslave successfully. Then set
up your buildslave to start automatically at the start up time.  See the
buildbot documentation for help.  You may want to restart your computer
to see if it works.</p>
</li>
<li><p class="first">Send a patch which adds your build slave and your builder to zorg.</p>
<ul class="simple">
<li>slaves are added to <tt class="docutils literal"><span class="pre">buildbot/osuosl/master/config/slaves.py</span></tt></li>
<li>builders are added to <tt class="docutils literal"><span class="pre">buildbot/osuosl/master/config/builders.py</span></tt></li>
</ul>
</li>
<li><p class="first">Send the buildslave access name and the access password directly to
<a class="reference external" href="mailto:gkistanova&#37;&#52;&#48;gmail&#46;com">Galina Kistanova</a>, and wait till she
will let you know that your changes are applied and buildmaster is
reconfigured.</p>
</li>
<li><p class="first">Check the status of your buildslave on the <a class="reference external" href="http://lab.llvm.org:8011/waterfall">Waterfall Display</a> to make sure it is connected, and
<tt class="docutils literal"><span class="pre">http://lab.llvm.org:8011/buildslaves/&lt;your-buildslave-name&gt;</span></tt> to see
if administrator contact and slave information are correct.</p>
</li>
<li><p class="first">Wait for the first build to succeed and enjoy.</p>
</li>
</ol>
</div>
</div>


          </div>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="yaml2obj.html" title="yaml2obj"
             >next</a> |</li>
        <li class="right" >
          <a href="Packaging.html" title="Advice on Packaging LLVM"
             >previous</a> |</li>
  <li><a href="http://llvm.org/">LLVM Home</a>&nbsp;|&nbsp;</li>
  <li><a href="index.html">Documentation</a>&raquo;</li>

          <li><a href="userguides.html" >User Guides</a> &raquo;</li> 
      </ul>
    </div>
    <div class="footer">
        &copy; Copyright 2012, LLVM Project.
      Last updated on 2012-12-21.
      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
    </div>
  </body>
</html>